In recent years, Software Defined Networking (SDN), which is a technique used for constructing virtual network that uses software, has gathered attention. According to SDN, a device referred to as a controller controls devices (nodes) that transfer data in a network. For example, a node such as a switch in a network uses a transfer rule obtained from the controller so as to conduct a transfer process of a received packet. When an undefined packet, which it is not possible to process by using the transfer rule, has been received, the node reports the information of the received packet to the controller, and thereby obtains information for identifying the processing method for that packet from the controller. As described above, the controller controls transfer processes in a network in a centralized manner, sometimes making processes in the controller a bottleneck. Against this background, a controller system is proposed in which a plurality of controllers are included in a network and the plurality of controllers conduct processes as logically one controller.
FIG. 1 illustrates an example of a controller system. Nodes 6 (6a through 6i) included in a wide area network 3 conduct a transfer process of packets in accordance with a transfer rule obtained from a controller system 1. The wide area network 3 is connected to an arbitrary number of LANs such as Local Area Networks (LANs) 4a and 4b on an as-needed basis. The controller system 1 includes a controller cluster 8, a messaging system 5 and an application cluster 15. Control devices 2 (2a through 2d) include undefined packets received from the node 6 in control messages that are used in the controller system 1, and transfer the messages to a device in the messaging system 5. In the example illustrated in FIG. 1, the messaging system 5 includes transfer devices 10 (10a through 10c). Each of the transfer devices 10 transfers a message received from the control device 2 to processing devices 20 (20a through 20d) in the application cluster 15. The processing devices 20 process control messages and transmit the process results to the transfer devices 10 and the control devices 2, and the control devices control the nodes 6 in accordance with the process contents. Note that while the control device 2 is connected to the messaging system 5 in order to facilitate the understanding the illustration of FIG. 1, it is assumed that each control device 2 (2a through 2d) may access arbitrary transfer devices 10 in the messaging system 5. Similarly, it is assumed that each transfer device may access arbitrary processing device 20 in the application cluster 15. When it is assumed for example that the node 6a has transmitted an undefined packet to the control device 2a, the control device 2a includes the received undefined packet in a control message for internal processes and requests, via the transfer device 10a, that the processing device 20b conduct the process of the control message, and the processing device 20b transmits the process result to the control device 2a via the transfer device 10b. The control device 2a controls the node 6a based on the obtained process result, and the node 6a conducts a transfer process of the packet based on the control content.
Note that the controller system 1 illustrated in FIG. 1 is an example and the numbers of the control devices, the transfer devices and the processing devices included in the controller system 1 may change arbitrarily in accordance with implementations.
As related arts, the following documents are known.
[Non Patent Document 1] “Study of Distributed Network Controller and Development of Benchmark Tool for the Controller in SDN” by Shimizu Sho, Yamada Akiko and Somiya Toshio, The Institute of Electronics, Information and Communication Engineers, General Conference, Institute of Electronics, Information and Communication Engineers, BS-2-4, p. S130-131, March 2013[Non Patent Document 2] “Study on Scalable Messaging System for Distributed SDN Controller” by Shimizu Sho, Yamada Akiko and Somiya Toshio, IEICE Technical Report, The Institute of Electronics, Information and Communication Engineers, vol. 113, no. 472, NS2013-212, pp. 207-212, April 2014
In a controller system that uses a distributed network controller, transfer routes of messages and processing devices that process the messages are to be changed when congestion has occurred in a processing device or a transfer device included in the distributed network controller. However, because there is not a method of identifying the location at which congestion has occurred, it is not possible to resolve the congestion efficiently.